package com.wuhong.controller;

import java.util.List;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
import com.wuhong.result.ResultData;
import com.wuhong.utils.JWTUtil;
import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.domain.PageImpl;
//import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import com.wuhong.entity.Accounts;
import com.wuhong.service.AccountsService;

 /**
 * 账号表;(accounts)表控制层
 * @author : http://www.chiner.pro
 * @date : 2022-12-2
 */
//@Api(tags = "账号表对象功能接口")
@RestController
@RequestMapping("/accounts")
public class AccountsController{
    @Autowired
    private AccountsService accountsService;
    
//    /**
//     * 通过ID查询单条数据
//     *
//     * @param id 主键
//     * @return 实例对象
//     */
//    @ApiOperation("通过ID查询单条数据")
//    @GetMapping("{id}")
//    public ResponseEntity<Accounts> queryById(String id){
//        return ResponseEntity.ok(accountsService.queryById(id));
//    }
//
//    /**
//     * 分页查询
//     *
//     * @param accounts 筛选条件
//     * @param pageRequest 分页对象
//     * @return 查询结果
//     */
////    @ApiOperation("分页查询")
////    @GetMapping
////    public ResponseEntity<PageImpl<Accounts>> paginQuery(Accounts accounts, PageRequest pageRequest){
////        //1.分页参数
////        long current = pageRequest.getPageNumber();
////        long size = pageRequest.getPageSize();
////        //2.分页查询
////        /*把Mybatis的分页对象做封装转换，MP的分页对象上有一些SQL敏感信息，还是通过spring的分页模型来封装数据吧*/
////        com.baomidou.mybatisplus.extension.plugins.pagination.Page<Accounts> pageResult = accountsService.paginQuery(accounts, current,size);
////        //3. 分页结果组装
////        List<Accounts> dataList = pageResult.getRecords();
////        long total = pageResult.getTotal();
////        PageImpl<Accounts> retPage = new PageImpl<Accounts>(dataList,pageRequest,total);
////        return ResponseEntity.ok(retPage);
////    }
//
//    /**
//     * 新增数据
//     *
//     * @param accounts 实例对象
//     * @return 实例对象
//     */
//    @ApiOperation("新增数据")
//    @PostMapping
//    public ResponseEntity<Accounts> add(Accounts accounts){
//        return ResponseEntity.ok(accountsService.insert(accounts));
//    }
//
//    /**
//     * 更新数据
//     *
//     * @param accounts 实例对象
//     * @return 实例对象
//     */
//    @ApiOperation("更新数据")
//    @PutMapping
//    public ResponseEntity<Accounts> edit(Accounts accounts){
//        return ResponseEntity.ok(accountsService.update(accounts));
//    }
//
//    /**
//     * 通过主键删除数据
//     *
//     * @param id 主键
//     * @return 是否成功
//     */
//    @ApiOperation("通过主键删除数据")
//    @DeleteMapping
//    public ResponseEntity<Boolean> deleteById(String id){
//        return ResponseEntity.ok(accountsService.deleteById(id));
//    }

     @PostMapping("/login")
     public ResultData login(@RequestBody Accounts account)throws Exception{
         ResultData login = accountsService.login(account);
         if (login.isSuccess()) {
             Accounts successUser = (Accounts) login.getData();
             String token = JWTUtil.createToken(successUser);
             login.setMsg(token);
         }
         return login;
     }




}